home *** CD-ROM | disk | FTP | other *** search
/ BCI NET / BCI NET Dec 94.iso / archives / telecomm / bbs / ctdlaux_src.lha / test_send.c < prev   
C/C++ Source or Header  |  1994-01-05  |  2KB  |  96 lines

  1. /* Special Debug Port routine Version 1.00
  2. */
  3. #include "stdio.h"
  4. #include "string.h"
  5. #include <libraries/dos.h>
  6. /*#include <ctype.h>*/
  7. #include <devices/console.h>
  8. #include <devices/serial.h>
  9. #include <devices/timer.h>
  10. #include <exec/types.h>
  11. #include <exec/ports.h>
  12. #include <exec/memory.h>
  13. #include <exec/tasks.h>
  14. #include <exec/nodes.h>
  15. #include <exec/lists.h>
  16. #include <exec/libraries.h>
  17. #include <exec/devices.h>
  18. #include <exec/io.h>
  19. #include <dos/dos.h>
  20. #include <dos/dosextens.h>
  21. #include <libraries/dos.h>
  22. #include <libraries/dosextens.h>
  23. #include <libraries/filehandler.h>
  24. #include "proto/all.h"
  25. #include "pragmas/dos_pragmas.h"
  26. #include "pragmas/exec_pragmas.h"
  27. #include "aux-debug.h"
  28.  
  29. void Aux_Debug(char *, int, int, int);
  30.  
  31. void main( void );
  32.  
  33. void main()
  34.   {
  35.   int i,j,k;
  36.   printf("Starting...\n");
  37.   for( k = 0; k< 10;k++) for(j=1; j < k; j++) for(i=2; i< j; i++)
  38.     {
  39.     Delay(10);
  40.     Aux_Debug("Test program",i,j,k);
  41.     };
  42.   printf("Test completed...\n");
  43.   }
  44.  
  45. void Aux_Debug(msg, int1, int2, int3)
  46. char *msg;             /* the message to send */
  47. int  int1, int2, int3; /* various integer data to send */
  48.   {
  49.   struct MsgPort *port;
  50.   char *mymessage;
  51.   struct debugmsg *temp;
  52.   Forbid();
  53.   port = FindPort(AUXDEBUGPORT);  /* check to see if we have a port...*/
  54.   Permit();
  55.   if( !port )return;  /* if no port, just exit */
  56.   temp      = (struct debugmsg *)AllocMem(sizeof(struct debugmsg),0);
  57.   if(!temp) return;
  58.   mymessage = (char *)AllocMem(strlen(msg)+1,0);  /* dynamic sizing */
  59.   if( mymessage == NULL)
  60.     {
  61.     FreeMem(temp, sizeof(struct debugmsg));
  62.     return;
  63.     };
  64.   temp->msg   = mymessage;
  65.   temp->a     = int1;
  66.   temp->b     = int2;
  67.   temp->c     = int3;
  68. /*
  69. ** Setup the Message itself
  70. */
  71. temp->ipc_Msg.mn_Node.ln_Type = NT_MESSAGE;
  72. temp->ipc_Msg.mn_Length = sizeof(struct debugmsg);
  73. temp->ipc_Msg.mn_ReplyPort = NULL;
  74.  
  75. /* safe send of a message.  If Port exists, we send the
  76. ** packet and forget about it.  If the Port does not exist
  77. ** we forget that the message even existed...
  78. */
  79.   Forbid();
  80.   port = FindPort(AUXDEBUGPORT);
  81.   if( port )
  82.     {
  83.     PutMsg(port,(struct Message *)temp);
  84.     }
  85.   else
  86.     {
  87.     FreeMem(temp->msg,strlen(msg)+1);
  88.     FreeMem(temp, sizeof(struct debugmsg));
  89.     }
  90.   Permit();
  91. /*
  92. ** we do not wait for the message reply, in this case there is
  93. ** no reply done and all memmory is deallocated in the reciever.
  94. */
  95.   }
  96.